﻿/**
* qmailDataGrid
* zyl 2008-10-26
* 
*/ 

// QMailObj类型的全局变量
var qmail = null;

//
// 定义配置类
//
var QMailObj = function(sColspan, sTdheight, target)
{
    this.state = 0;// 0 为没有打开，1为打开了
    this.lastTD = null; // 上一次触发事件控件，注意：它并不是TD，而是那个控件，如image
    this.lastTR = null; // 上一次浮动窗体在哪个TR下面
    this.colspan = sColspan; // 表的列数
    this.tdheight = sTdheight; // 浮动窗体的高度
    this.bgcolor = "#FFFFFF"; // 上一次浮动窗体上的TR背景色
    this.subURL = target;
}

//
// 调用它来创建一个新的QMailObj对象
// 参数说明：
//  sColspan: 表的列数
//  sTdheight: 浮动窗口的高度
// 返回：无
//
function createQMailObj(sColspan, sTdheight, target)
{
    qmail = new QMailObj(sColspan, sTdheight, target);
}

// 
// 显示浮动窗体
// 参数说明：
//      v: 触发事件的对象
//      itemId: 怎么说呢，显示具体对象的url可能是：http://soft.buaa.edu.cn/ShowDetail.aspx?id=100
//          itemId就是指id那个值。这个地方还需要做一些改进。
// 
function showDetail(v, itemId)
{
// alert(qmail.subURL);
    doShowDetail(v, qmail.subURL + "?id=" + itemId);
}

function doShowDetail(v, url)
{
    if(qmail.state == 1)
    {
        // 当前行隐藏        if(qmail.lastTD != null && qmail.lastTD == v)
        {    
            hideDetail(v);
            if (qmail.lastTR) {
                qmail.lastTR.css("background-color", qmail.bgcolor);
            }
            qmail.state = 0;
            return;
        }
    }
    
    if(qmail.lastTD == null || qmail.lastTD != v)
    {
        // 换行
        collapseDetail(qmail.lastTD);
        if(qmail.lastTR != null)
            qmail.lastTR.css("background-color", qmail.bgcolor);
        qmail.lastTD = v;
    }
    
    // 获取当前的tr
    var tr = $(v).parent().parent();
    var floatTR = $("#trtmp");
    var detailexp = "<tr id='trtmp' style='height:" + qmail.tdheight
        + ";'><td colspan='" + qmail.colspan
        + "' style='height:" + qmail.tdheight
        + "; border: 2px solid #ffde00;'><iframe class='iframe' src='"
        + url 
        + "'></iframe></td></tr>";

    if(floatTR && document.getElementById("trtmp") != undefined)
    {
        floatTR.show();
        if (qmail.lastTR) {
            qmail.lastTR.css("background-color", "#ffde00");
        }
        qmail.state = 1;
    }
    else
    {
        tr.after(detailexp);
    
        qmail.state = 1;
        qmail.lastTD = v;
        qmail.bgcolor = tr.css("background-color");
        qmail.lastTR = tr;
        tr.css("background-color", "#ffde00");
    }
}

//
// 隐藏浮动窗口
//
function collapseDetail(v)
{
    var floatTR = $("#trtmp");
    if(floatTR){
        floatTR.remove();
    }
}

//
// 隐藏
//
function hideDetail(v)
{
    var floatTR = $("#trtmp");
    if(floatTR){
        floatTR.hide();
    } 
}


